package main

import "fmt"

//Go中可以抛出一个panic的异常，然后在defer中通过recover捕获这个异常，然后正常处理
//在一个主进程，多个go程处理逻辑的结构中，这个很重要，如果不用recover捕获panic异常，会导致整个进程出错中断
//recover类似java的try catch
func main() {
	defer func() {
		fmt.Println("啊哦，程序发生错误了")
		if err:=recover();err !=nil {
			fmt.Println(err)
			
		}
	}()

	ff()

}

func ff()  {
	fmt.Println("before panic")
	panic("程序出错了")
	fmt.Println("after panic")

}
